Move the call to gdk_x11_atom_to_xatom_for_display() outside of the
search loop in gdk_x11_screen_supports_net_wm_hint(). In my test case
(running Audacious for about a minute), this reduced the total number of
hash table lookups performed from 370,000 to 230,000.
https://bugzilla.gnome.org/show_bug.cgi?id=702913
GdkX11Screen *x11_screen;
NetWmSupportedAtoms *supported_atoms;
GdkDisplay *display;
+ Atom atom;
g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
if (supported_atoms->atoms == NULL)
return FALSE;
- i = 0;
- while (i < supported_atoms->n_atoms)
+ atom = gdk_x11_atom_to_xatom_for_display (display, property);
+
+ for (i = 0; i < supported_atoms->n_atoms; i++)
{
- if (supported_atoms->atoms[i] == gdk_x11_atom_to_xatom_for_display (display, property))
+ if (supported_atoms->atoms[i] == atom)
return TRUE;
-
- ++i;
}
return FALSE;